package com.doge.util.valid;

import com.doge.exception.Param402Exception;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import sun.plugin2.message.Message;

/**
 * @program: doge
 * @description:
 * @author: Keyu Li
 * @create: 2021-12-01 14:02
 **/


public class ParamValidation {

    /*
    * 验证电话号码
    * */
    public static boolean phoneNumValId(String mobile) {

        boolean isNumber=false;
        char[] chars = mobile.toCharArray();
        for (char c : chars) {
//            如果不是数字就赋值false，是数字就正常往后判断
            if (c <= '9' && c >= '0') {
                isNumber = true;
                break;
            }
        }
        return mobile.length() == 11 && mobile.startsWith("1") && isNumber;
    }

    /*
    * Hibernate 参数校验
    * */
    public static String validHibernate(BindingResult bind) throws Param402Exception {
        if (bind.hasFieldErrors()) {
            // 成员变量，即请求参数 错误
            FieldError fieldError = bind.getFieldError();
            // 获得拒绝值的成员变量名，即请求参数名
            String field = fieldError.getField();
            // 拒绝值
            Object rejectedValue = fieldError.getRejectedValue();
            // 获取默认消息
            String defaultMessage = fieldError.getDefaultMessage();
            // 返回 json数据
            StringBuffer sb = new StringBuffer().append("请求参数 ").append(field)
                    .append(" 因为传入 ").append(rejectedValue)
                    .append(" 而失败，失败原因：").append(defaultMessage);
            throw new Param402Exception(sb.toString());
//            return sb.toString();
        }
        return null;
    }
}
